#include <stdio.h>
#include "app.h"
#include "bsp.h"
#include "usart.h"
#include "tim.h"
#include "cmsis_os.h"
#include "canopen_app.h"
#include "MPU6050.h"

#define APP_STACK_SIZE            128                      //开始任务堆栈大小
#define APP_TASK_PRIORITY         1                        //开始任务优先级

/* 静态申明 ------------------------------------------------------------------*/
static void IdleTaskHandler(void *pvParameters);
static osThreadId TestCANProcessTaskHandle;


static void fault_test_by_unalign(void) {
    volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
    volatile int * p;
    volatile int value;

    *SCB_CCR |= (1 << 3); /* bit3: UNALIGN_TRP. */

    p = (int *) 0x00;
    value = *p;
    printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);

    p = (int *) 0x04;
    value = *p;
    printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);

    p = (int *) 0x03;
    value = *p;
    printf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
}

static void fault_test_by_div0(void) {
    volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
    int x, y, z;

    *SCB_CCR |= (1 << 4); /* bit4: DIV_0_TRP. */

    x = 10;
    y = 0;
    z = x / y;
    printf("z:%d\n", z);
}

/************************************************
函数名称 ： AppTaskCreate
功    能 ： 创建任务
参    数 ： 无
返 回 值 ： 无
作    者 ： strongerHuang
*************************************************/
void AppTaskCreate(void)
{
    W25Q64Test();
}



/************************************************
函数名称 ： IdleTaskHandler
功    能 ： 应用程序(开始任务)
参    数 ： pvParameters --- 可选参数
返 回 值 ： 无
作    者 ： strongerHuang
*************************************************/
static void IdleTaskHandler(void *pvParameters)
{
	printf("app start\r\n");
	// uint8_t data = 0x55;
	for(;;)
	{
        printf("idle3\r\n");
		// HAL_USART_Transmit(&husart1, &data, sizeof(data), 0xff);
		vTaskDelay(250);
		LED2_TOGGLE;                                //LED闪烁
	}
}


/**** Copyright (C)2018 strongerHuang. All Rights Reserved **** END OF FILE ****/